1. Field of the Invention
The present invention is generally directed to computing operations performed in computing systems. More particularly, the present invention is directed to a processing unit (such as, for example, a graphics processing unit (GPU)) that performs computing operations and applications thereof.
2. Background Art
A GPU is a complex integrated circuit that is specially designed to perform data-parallel computing tasks, such as graphics-processing tasks. A GPU may, for example, execute graphics-processing tasks required by an end-user application, such as a video-game application.
FIG. 1 illustrates that several layers of software may exist between an end-user application 102 and a GPU 108. End-user application 102 communicates with an application-programming interface (API) 104. API 104 allows end-user application 102 to output graphics data and commands in a standardized format, rather than in a format that is dependent on GPU 108. API 104 communicates with a driver 106. Driver 106 translates standard code received from API 104 into a native format of instructions understood by GPU 108. Driver 106 is typically written by the manufacturer of GPU 108. GPU 108 then executes the instructions received from the driver.
Several APIs are commercially available. A relatively large segment of end-user applications are compatible with DirectX® developed by Microsoft Corporation of Redmond, Wash. To reach this relatively large segment of end-user applications, a GPU should be compatible with DirectX®.
A recent version of DirectX is known as DirectX 11 (“DX11”). DX11 uses a unified shader model in which a GPU implements a sequence of shaders. For example, FIG. 2 illustrates an example sequence of shaders 200 specified by DX11. As illustrated in FIG. 2, the GPU executes a vertex shader 202, then a hull shader 204, then a tessellation shader 206, and then one or more additional shaders 208 to provide results data. In the unified shader model, intermediate results provided by previously executed shaders (such as, hull shader 204) may be used by the GPU to execute subsequent shaders (such as, tessellation shader 206). Unfortunately, DX11 includes schemes that are not optimal from a GPU hardware perspective.
What is needed, therefore, are systems, apparatuses, and methods that are not only compatible with DX11, but also operate efficiently from a GPU hardware perspective.